package cn.edu.cxcyzx.entity;

import java.io.Serializable;
import java.util.Date;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;

public class Project implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -1619387290859427515L;
	private int id;
	//项目编号
	private int projectId;
	//项目名称
	private String projectName;
	//团队id
	private String groupId;
	//项目状态：0-验收完成；1-申报成功，2-提交需求，3-代码完成0%，4-代码完成20%，5-代码完成40%，6-代码完成60%，7-代码完成80%，8-代码完成100%，9-软件测试，10-申请验收
	private int projectStatus;
	//项目组长id
	private String leaderId;
	//项目成员数量
	private int memberNum;
	//项目申报书
	private String declareReport;
	//需求分析报告
	private String analyseReport;
	//项目报告
	private String projectReport;
	//预计完成时间
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
	private  Date finishTime;
	//项目使用房间id
	private String roomId;
	//立项时间
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
	private Timestamp createTime;
	//项目简介
	private String projectInfo;
	//修改完成时间
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
	private Date update_finishTime;
	//提交需求分析的时间
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
	private Date analyseDate;
	//gitee上的项目名称
	private String gitee_proName;
	//gitee full_name
	private String gitee_pro_full_name;
	public Project(){}
	public Project(ApplyProject project,String groupId,String roomId){
		this.projectId=project.getProjectId();
		this.projectName=project.getProjectName();
		this.declareReport=project.getDeclareReport();
		this.leaderId=project.getLeaderId();
		this.finishTime=project.getFinishTime();
		this.createTime=project.getRealApplyTime();
		this.projectInfo=project.getProjectInfo();
		this.groupId=groupId;
		this.roomId=roomId;
	}
	
	
	public Date getAnalyseDate() {
		return this.analyseDate;
		
	}
	public void setAnalyseDate(Date analyseDate) {
		this.analyseDate = analyseDate;
	}
	public Date getUpdate_finishTime() {
		return this.update_finishTime;
		
	}
	public void setUpdate_finishTime(Date update_finishTime) {
		this.update_finishTime = update_finishTime;
	}
	
	
	public String getProjectInfo() {
		return projectInfo;
	}
	public void setProjectInfo(String projectInfo) {
		this.projectInfo = projectInfo;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public int getProjectId() {
		return projectId;
	}
	public void setProjectId(int projectId) {
		this.projectId = projectId;
	}
	public String getProjectName() {
		return projectName;
	}
	public void setProjectName(String projectName) {
		this.projectName = projectName;
	}
	public String getGroupId() {
		return groupId;
	}
	public void setGroupId(String groupId) {
		this.groupId = groupId;
	}
	public int getProjectStatus() {
		return projectStatus;
	}
	public void setProjectStatus(int projectStatus) {
		this.projectStatus = projectStatus;
	}
	public String getLeaderId() {
		return leaderId;
	}
	public void setLeaderId(String leaderId) {
		this.leaderId = leaderId;
	}
	public int getMemberNum() {
		return memberNum;
	}
	public void setMemberNum(int memberNum) {
		this.memberNum = memberNum;
	}
	public String getDeclareReport() {
		return declareReport;
	}
	public void setDeclareReport(String declareReport) {
		this.declareReport = declareReport;
	}
	public String getAnalyseReport() {
		return analyseReport;
	}
	public void setAnalyseReport(String analyseReport) {
		this.analyseReport = analyseReport;
	}
	public String getProjectReport() {
		return projectReport;
	}
	public void setProjectReport(String projectReport) {
		this.projectReport = projectReport;
	}
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
	public Date getFinishTime() {
		return this.finishTime;
	}
	public void setFinishTime(Date finishTime) {
		this.finishTime = finishTime;
	}
	public String getRoomId() {
		return roomId;
	}
	public void setRoomId(String roomId) {
		this.roomId = roomId;
	}
	public Timestamp getCreateTime() {
		return this.createTime;
	}
	public void setCreateTime(Timestamp createTime) {
		this.createTime = createTime;
	}
	
	public String getGitee_proName() {
		return gitee_proName;
	}
	public void setGitee_proName(String gitee_proName) {
		this.gitee_proName = gitee_proName;
	}
	public String getGitee_pro_full_name() {
		return gitee_pro_full_name;
	}
	public void setGitee_pro_full_name(String gitee_pro_full_name) {
		this.gitee_pro_full_name = gitee_pro_full_name;
	}
	@Override
	public String toString() {
		return "Project [id=" + id + ", projectId=" + projectId
				+ ", projectName=" + projectName + ", groupId=" + groupId
				+ ", projectStatus=" + projectStatus + ", leaderId=" + leaderId
				+ ", memberNum=" + memberNum + ", declareReport="
				+ declareReport + ", analyseReport=" + analyseReport
				+ ", projectReport=" + projectReport + ", finishTime="
				+ finishTime + ", roomId=" + roomId + ", createTime="
				+ createTime + ", projectInfo=" + projectInfo
				+ ", update_finishTime=" + update_finishTime + ", analyseDate="
				+ analyseDate + ", gitee_proName=" + gitee_proName
				+ ", gitee_pro_full_name=" + gitee_pro_full_name + "]";
	}
	
	
	
	

	
	
	
}
